package com.mallcloud.mall.mall.api.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.mallcloud.mall.common.core.constant.enums.mall.PointsCouponEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

@ApiModel(value = "MallPointsCouponOfRefundModel", description = "过期退款券")
@Data
@TableName("V_VIQMQ_GQTK")
public class MallPointsCouponOfRefundModel implements Serializable {
	private static final long serialVersionUID = 1L;

	@JsonSerialize(using = ToStringSerializer.class)
	@ApiModelProperty(value = "券序号")
	@TableId("VHEQSEQNO")
	private Long id;

	@ApiModelProperty(value = "卡号")
	@TableField("VHEUCNO")
	private String cardNo;

	@ApiModelProperty(value = "券号")
	@TableField("VHETCFTVIPNO")
	private String couponNo;

	@ApiModelProperty(value = "支付订单号")
	@TableField("VHETCDBILLNO")
	private String orderNo;

	@ApiModelProperty(value = "活动开始日期")
	@TableField("VHESTARTDATE")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date startDate;

	@ApiModelProperty(value = "活动结束日期")
	@TableField("VHEENDDATE")
	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	private Date endDate;

	/**
	 * {@link PointsCouponEnum.StatusEnum}
	 */
	@ApiModelProperty(value = "券状态")
	@TableField("VHEQSTATUS")
	private String status;

	@ApiModelProperty(value = "券可兑换金额(元)")
	@TableField("VHEQJE")
	private BigDecimal redeemMoney;

	@ApiModelProperty(value = "买券实际支付金额(元)")
	@TableField("VHEZFJE")
	private BigDecimal payMoney;

}
